package com.wn.filter;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

/**
 * @author yellow Docter
 * @date 2024 -06-21
 * @desc
 *   操作步骤:
 *     1、继承 javax.servlet.Filter
 *     2、重写   doFilter的方法
 *     3、写完了方法后
 *               filterChain.doFilter(req,resp); 放行
 *     4、配置   @WebFilter("/*") 拦截指定的请求
 *                   /*  拦截所有的请求
 */
@WebFilter("/*")
public class EncodeFilter implements Filter {
    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain filterChain) throws IOException, ServletException {
        // 在过滤器中统一设置编码（这样servlet就不需要再设置了）
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");

        try {
            // 调用doFilter()方法，表示放行：进入下一个filter，如果没有下一个filter，就执行servlet
            filterChain.doFilter(req,resp);
        } catch (Exception e) {
            e.printStackTrace();
            // 做一些错误处理：返回错误信息、跳转到错误页面等
        }
    }
}
